package com.xyhuo.leetcode.december;

/**
 * 加一
 * https://leetcode.cn/problems/plus-one/
 *
 * @time 2023/12/26
 */
public class PlusOne {

//    public static void main(String[] args) {
//        PlusOne po = new PlusOne();
//        int[] digits = {9, 8, 9};
//        po.plusOne(digits);
//    }

    public int[] plusOne(int[] digits) {
        if (digits[digits.length - 1] < 9) {
            digits[digits.length - 1]++;
            return digits;
        }
        int add = 1;
        for (int i = digits.length - 1; i >= 0; i--) {
            int tmp = digits[i] + add;
            if (tmp > 9) {
                add = tmp / 10;
                digits[i] = tmp % 10;
            } else {
                add = 0;
                digits[i] = tmp;
            }
        }
        if (add == 0) {
            return digits;
        } else {
            int[] ans = new int[digits.length + 1];
            ans[0] = 1;
            for (int i = 0; i < digits.length; i++) {
                ans[i + 1] = digits[i];
            }
            return ans;
        }
    }
}
